package com.uyayo.oms.system.vo;

import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

public class SysResourceVO {
	
	@Pattern(regexp = "[a-zA-Z0-9]{1,36}", message = "{id.format.error}")
    private String id;

	/**
     * 编码
     */
	@NotNull(message = "{code.not.null.error}")
	@Size(min = 2, max = 100, message = "{code.size.error}")
    @Pattern(regexp = "[a-zA-Z0-9_]{1,100}", message = "{code.format.error}")
    private String code;

	/**
     * 名称
     */
	@NotEmpty(message = "{system.resource.name.null}")
	@Size(min = 2, max = 36, message = "{system.resource.name.size.error}")
	private String name;

    /**
     * 上级id
     */
    private String parentId;

    /**
     * 权限
     */
    @NotEmpty(message = "{system.resource.permission.null}")
    @Pattern(regexp = "[a-zA-Z0-9:\\-]{1,100}", message = "{system.resource.permission.format.error}")
    private String permission;

    /**
     * 路径
     */
    private String url;

    /**
     * 图标
     */
    private String iconCls;

    /**
     * 描述
     */
    private String description;

    /**
     * 状态（0：禁用，1：启用）
     */
    private Integer status;
    
    /**
     * 参数类型
     */
    private Integer type;
    
    /**
     * 排序
     */
    private Integer sortOrder;
    
    /**
     * 备注
     */
    private String remark;
    
    
    /**
     * 获取主键id
     *
     * @return id - 主键id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置主键id
     *
     * @param id 主键id
     */
    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    
    /**
     * 获取参数编码
     *
     * @return code - 参数编码
     */
    public String getCode() {
        return code;
    }

    /**
     * 设置参数编码
     *
     * @param code 参数编码
     */
    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }
    
    /**
     * 获取名称
     *
     * @return name - 名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置名称
     *
     * @param name 名称
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }


    /**
     * 获取上级id
     *
     * @return parent_id - 上级id
     */
    public String getParentId() {
        return parentId;
    }

    /**
     * 设置上级id
     *
     * @param parentId 上级id
     */
    public void setParentId(String parentId) {
        this.parentId = parentId == null ? null : parentId.trim();
    }


    /**
     * 获取权限
     *
     * @return permission - 权限
     */
    public String getPermission() {
        return permission;
    }

    /**
     * 设置权限
     *
     * @param permission 权限
     */
    public void setPermission(String permission) {
        this.permission = permission == null ? null : permission.trim();
    }


    /**
     * 获取图标
     *
     * @return icon_cls - 图标
     */
    public String getIconCls() {
        return iconCls;
    }

    /**
     * 设置图标
     *
     * @param iconCls 图标
     */
    public void setIconCls(String iconCls) {
        this.iconCls = iconCls == null ? null : iconCls.trim();
    }

    /**
     * 获取路径
     *
     * @return url - 路径
     */
    public String getUrl() {
        return url;
    }

    /**
     * 设置路径
     *
     * @param url 路径
     */
    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }


    /**
     * 获取状态（0：禁用，1：启用）
     *
     * @return status - 状态（0：禁用，1：启用）
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置状态（0：禁用，1：启用）
     *
     * @param status 状态（0：禁用，1：启用）
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取参数类型
     *
     * @return type - 参数类型
     */
    public Integer getType() {
        return type;
    }

    /**
     * 设置参数类型
     *
     * @param type 参数类型
     */
    public void setType(Integer type) {
        this.type = type;
    }
    
    /**
     * 获取描述
     *
     * @return description - 描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置描述
     *
     * @param description 描述
     */
    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }

    /**
     * 获取排序
     *
     * @return seq - 排序
     */
    public Integer getSortOrder() {
        return sortOrder;
    }

    /**
     * 设置排序
     *
     * @param sortOrder 排序
     */
    public void setSortOrder(Integer sortOrder) {
        this.sortOrder = sortOrder;
    }

    /**
     * 获取备注
     *
     * @return remark - 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }
}
